﻿namespace ItemsViewerDemo
{
    /// <summary>
    /// This class is used as the basis for all Progress ViewModel objects.
    /// </summary>
    public class ProgressViewModel : AbstractViewModel
    {
        /// <summary>
        /// The User CurrentProgressMessage.
        /// </summary>
        private string currentProgressMessage;

        /// <summary>
        /// The User CurrentProgressValue.
        /// </summary>
        private double currentProgressValue;

        /// <summary>
        /// Value indicating when progress bar is Busy.
        /// </summary>
        private bool isBusy;

        /// <summary>
        /// Gets or sets CurrentProgressMessage.
        /// </summary>
        public string CurrentProgressMessage
        {
            get
            {
                return this.currentProgressMessage;
            }

            set
            {
                this.currentProgressMessage = value;
                OnPropertyChanged(() => this.CurrentProgressMessage);
            }
        }

        /// <summary>
        /// Gets or sets CurrentProgressValue.
        /// </summary>
        public double CurrentProgressValue
        {
            get
            {
                return this.currentProgressValue;
            }

            set
            {
                this.currentProgressValue = value;
                OnPropertyChanged(() => this.CurrentProgressValue);
            }
        }

        /// <summary>
        /// Gets or sets a value indicating whether the progress bar is busy.
        /// </summary>
        public bool IsBusy
        {
            get
            {
                return this.isBusy;
            }

            set
            {
                this.isBusy = value;
                OnPropertyChanged(() => this.IsBusy);
            }
        }
    }
}
